package main

import (
	"fmt"
	"reflect"
)

/*
	type 结构体名称 struct {
		字段名 类型
	}

var s string
s = xxx

var p 结构体名称
p.字段名 = xxx
*/
type Person struct {
	Name string
	Age  int
}

func main() {
	//Go语言中的结构体是一种自定义数据类型，可以将不同类型的数据字符组合在一起形成一个单独的实体。
	// 结构体可以用于存储和操作复杂的数据结构，以及创建自定义数据类型。
	// 通过自定义结构体创建的变量，可以存储不同类型的数据字段
	// 在实际开发中，结构体的用途非常广泛，常用于表示复杂的实体
	// 例如数据库中的表结构、API接口的数据格式等。使用结构体不仅可以提高代码的模块化程度
	// 还可以实现复杂数据结构的创建、修改和传递。
	var p Person
	p.Age = 18
	p.Name = "张三"

	fmt.Println(p.Name, p.Age)
	fmt.Println(reflect.TypeOf(p))

	p2 := Person{Name: "李四", Age: 20}
	fmt.Println(p2)
	p3 := Person{"杨旭", 25}
	fmt.Println(p3)

	p = p2
	// 判断自定义类型的变量是否相等
	fmt.Println("p和p2是否相等", p == p2)
}
